package com.itheima.dao;

import com.itheima.pojo.CategoryMenu;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;


public interface CategotyMenuMapper extends Mapper<CategoryMenu> {

    /**
     * 获取排序字段的最大值
     * @return
     */
    @Select("select MAX(sort) from t_category_menu")
    int getMax();

    /**
     * 置顶操作
     * @param uid
     * @param num
     * @return
     */
    @Update("update t_category_menu set sort=#{num} where uid=#{uid}")
    int stick(@Param("uid") String uid,@Param("num") Integer num);

    /**
     * 获取等级为1的对象
     * @param keyword
     * @return
     */
    @Select("select uid,name,menu_level menuLevel,summary,parent_uid parentUid,url,icon,sort,status,create_time createTime,update_time updateTime,is_show isShow,menu_type menuType from t_category_menu where uid=#{keyword} and menu_level=1")
    CategoryMenu getLevelOne(@Param("keyword") String keyword);

    /**
     * 获取所有等级为1的对象
     * @param
     * @return
     */
    @Select("select * from t_category_menu where menu_level=1")
    List<CategoryMenu> getAllLevelOne();

    /**
     * 获取等级为2的对象
     * @param keyword
     * @return
     */
    @Select("select * from t_category_menu where uid=#{keyword} and menu_level=2")
    CategoryMenu getLevelTwo(@Param("keyword") String keyword);

    /**
     * 根据parentUid获取二级对象
     * @param keyword
     * @return
     */
    @Select("select * from t_category_menu where parent_uid=#{keyword} and menu_level=2")
    List<CategoryMenu> getByParentUidLevelTwo(@Param("keyword") String keyword);

    /**
     * 根据parentUid获取三级对象
     * @param keyword
     * @return
     */
    @Select("select * from t_category_menu where parent_uid=#{keyword} and menu_level=3")
    List<CategoryMenu> getByParentUidLevelThree(@Param("keyword") String keyword);

    /**
     * 获取按钮P
     * @param keyword
     * @return
     */
    @Select("select * from t_category_menu where menu_level=3 and parent_uid=#{keyword}")
    List<CategoryMenu> getButtonAll(@Param("keyword") String keyword);

    //获取所有按钮菜单数据
    @Select("SELECT * FROM t_category_menu WHERE menu_level=3")
    List<CategoryMenu> findButtonList();

    //查询所有的子菜单数据，并且封装到sonList集合中
     @Select("select name,menu_level menuLevel,menu_type menuType,summary,icon,parent_uid parentUid,url,sort,is_show isShow,uid,status,create_time createTime,update_time updateTime from t_category_menu where uid=#{uid}")
     CategoryMenu findCategoryMenuList(@Param("uid") Object uid);



}
